﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Pex.Framework;

namespace MicroBenchmarks.ExternalClass
{
    /// <summary>
    /// Simulates a scenario where state problem is from external class, but
    /// it can simply be dealt with an external class. As the actual object is an external
    /// object, the desired for the external object can be captured and then used rather than
    /// manipulating the states of this class.
    /// </summary>
    public class MainClass
    {
        SecondaryClass istack;
        public MainClass(SecondaryClass sc)
        {
            //PexAssume.IsNotNull(sc);
            this.istack = sc;
        }

        public void Push(int i)
        {
            istack.Push(i);
        }

        public int Pop()
        {
            return istack.Pop();
        }

        public int Size()
        {
            return istack.Size();
        }
    }
}
